﻿$(function () {
    //默认收缩菜单
    $(".categoryTree tbody tr").each(function() {
        var layer = parseInt($(this).attr("layer"));
        if (layer === 0) {
            categoryTree($(this).find("span")[0], layer);
        }
    });
});


function selectAll(obj, itemClass) {
    $("input[type=checkbox][class=" + itemClass + "]").each(function () {
        this.checked = $(obj).is(":checked");
    });
}

//选中栏目下所有子栏目
function selectMenu(obj) {
    if ($(obj).is(":checked")) {//如果选中
        //设置所有子栏目为选中状态，并赋值
        $(obj).parent().next().find("input[type=checkbox]").each(function () {
            this.checked = true;
        });
    }
    else {//如果没有选中
        ////设置所有子栏目为未选中状态
        $(obj).parent().next().find("input[type=checkbox]").each(function () {
            this.checked = false;
        });
    }
}
//单选
function selectSign(obj) {
    if ($(obj).is(":checked")) {//如果选中
        $(obj).parent().prev().find("input[type=checkbox]").each(function () {
            this.checked = true;
        });
    }
    else {//如果未选中
        //设置父栏目为未选中状态
        var parentChecked = false;
        $(obj).parent().find("input[type=checkbox]").each(function () {
            if (this.checked) {
                parentChecked = true;
            }
        });
        $(obj).parent().prev().find("input[type=checkbox]").each(function () {
            this.checked = parentChecked;
        });
    }
}


//分类树展开/关闭
function categoryTree(obj, layer) {
    var state = $(obj).attr("class");
    if (state == "open") {
        $(obj).parent().parent().nextAll().each(function (index) {
            var flag = parseInt($(this).attr("layer")) - layer;
            if (flag == 1) {
                $(this).show();
            } else if (flag == 0) {
                return false;
            }
        });
        if ($(obj).hasClass("open")) {
            $(obj).removeClass("open").addClass("close");
        }
    }
    else if (state == "close") {
        $(obj).parent().parent().nextAll().each(function (index) {
            if (parseInt($(this).attr("layer")) > layer) {
                $(this).hide();
                $(this).find("td span").each(function (i) {
                    if ($(this).attr("class") != "" && $(this).attr("class") != undefined) {
                        $(this).removeClass("close").addClass("open");
                    }
                });
            } else {
                //要 retrun false才能跳出循环
                return false;
            }
        });
        if ($(obj).hasClass("close")) {
            $(obj).removeClass("close").addClass("open");
        }
    }
}
